import io
import pandas as pd

data = '''
基金名称 电子 传媒 计算机
 基金A  1  6   7
 基金B  0  3   8
 基金C  7  0   9
'''

df = pd.read_csv(io.StringIO(data), delim_whitespace=True)
# delim_whitespace=True 表示使用 delim_whitespace 元数据分隔符读取 CSV 文件，
# delim_whitespace=False 表示使用默认的逗号分隔符读取 CSV 文件。

# 需要增加一列「分布方式」，每行的值是本行基金名称对应列名及数量，顺序按照值大小，值为 0 的不显示

tmp_df = df.set_index("基金名称").apply(lambda x: x.sort_values(ascending=False).to_dict(), axis=1)
print(tmp_df)
tmp_df = tmp_df.map(lambda x: [f"{k}({v})" for k, v in x.items() if v > 0])
print(tmp_df)
tmp_df = tmp_df.map(lambda x: "、".join(x))
print(tmp_df)

df = df.assign(分布方式=tmp_df.array)
print(df)
